require(['./config'], () => {
  // 先引入config，让哪些配置生效，然后就可以使用配置好的段名称来引入需要的模块
  require(['jquery'],function(){
	  require(['swiper', 'template', 'elevateZoom','listofheader', 'listoffooter'], (Swiper,template) => {
		// 这个函数是在所有依赖模块执行完了之后执行
		class Index {
		  constructor () {
			// this.getData().then(() =>{
			// 	this.init()
			// })
			// this.init()
			this.getData()
		  }
		  init () {
			// console.dir($)
			$('.zoom-image').elevateZoom({
				gallery: 'gal1' ,// 小图容器盒子，ul的id（不加#）
			})
				this.addToCart()
		  }
		  
		  
		  getData () {
		    const id = location.search.slice(1)
			// return new Promise((resolve, reject) => {}
		    $.get('http://www.xiongmaoyouxuan.com/api/detail', { id }, resp => {
		      if (resp.code === 200) {
		        console.log(resp.data)
				const {title,price,accessoryHints,couponStatus,commodityTypeName,image,id} = resp.data.detail
				const {reviewContent} = resp.data.detail.tbItemReview
				
				const html1 = template('demessagetemplate', { title, reviewContent, price, accessoryHints,couponStatus,commodityTypeName,image,id})
				this.detail = {title, reviewContent, price, accessoryHints,couponStatus,commodityTypeName,image,id}
				$('#demessage').html(html1)
		        const html2 = template('depictemplate', {image})
		        // $('#depic').html(html2)
				// resolve()
				function getimg(){
					return new Promise((resolve,reject) =>{
						$('#depic').html(html2,()=>{
							resolve()
						})
					})
				}
				getimg().then(this.init())
				
				
				}
		    })
			
		  }
		  
		  
		  
		  
		  addToCart () {
		    // 加入购物车
		    $('#cart').on('click', () => {
		      // 先取，取出来之后判断购物车里是否已经有数据
		      //   如果没有，那就存入当前数据，但是也存一个数组，为下一次做准备
		      //   如果有了，那就把取出来的数据push当前这一条再重新存进去
		      let cart = localStorage.getItem('cart')
		      if (cart) {
		        // 购物车里已经有数据了
		        cart = JSON.parse(cart)
		        // 判断购物车里已存在的数据中是否包含当前数据
		        // 如果已存在就把数量加1（或者加数量输入框的值）
		        // 如果不存在才push
		        const isExist = cart.some(shop => {
		          return shop.id === this.detail.id
		        })
		        if (isExist) {
		          // 商品已存在
		          // 用map修改数组，满足条件就count加完再return，不满的话直接return shop本身
		          cart = cart.map(shop => {
		            if (shop.id === this.detail.id) {
		              shop.count++
		            }
		            return shop
		          })
		        } else {
		          // 当前商品还没有被加过购物车
		          // 把当前商品push到数组里，也要写上默认数量为1，默认选中
				  console.log(123)
		          cart.push({ ...this.detail, count: 1, check: true })
		        }
		        // 不管if还是else都要存cart，那就放在最后即可
		        localStorage.setItem('cart', JSON.stringify(cart))
		      } else {
		        // 购物车为空
		        // 把this.detail展开，再加上count字段和check，把这个对象放进数组，存入localStorage
		        localStorage.setItem('cart', JSON.stringify([ { ...this.detail, count: 1, check: true } ]))
		      }
		      // 调用header的方法计算总数量
		      // header.calcCartCount()
		    })
		  }
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		}
		new Index()
	  })
	})
	  
  })

